Field of the Invention
The present invention relates to electronics and, more specifically but not exclusively, to dual-boot capability for systems having multiple programmable devices, such as programmable logic devices and/or programmable mixed-signal devices.
Description of the Related Art
This section introduces aspects that may help facilitate a better understanding of the disclosure. Accordingly, the statements of this section are to be read in this light and are not to be understood as admissions about what is prior art or what is not prior art.
Some programmable devices (PDs), such as programmable logic devices (PLDs) and programmable mixed-signal devices (PMDs) have both on-chip volatile configuration memory and on-chip non-volatile configuration memory, where a primary image is programmed into the non-volatile memory and then, upon device power-up, copied from the non-volatile memory into the volatile memory for use in operating the PD. As the terms are used here, a field-programmable gate array (FPGA) is assumed to be a type of PLD. While the devices operate using the image stored in the volatile configuration memory, it is possible to reprogram the on-chip non-volatile configuration memory through a process called background programming. If the background programming process is interrupted (e.g., power cycling the board), then the PD wakes up with a faulty primary image stored in the non-volatile memory. At that time, the PD might not be able to boot up properly, resulting in a system failure. As used in this specification, the term “programming” and its variants refer to the storage of images into non-volatile memory, while the term “configuration” and its variants refer to the copying of images from non-volatile memory into volatile memory, e.g., upon power-up.
Some PDs have native dual-boot capability that enables the PD to boot up even when the primary image is invalid. In particular, when the PD fails to boot up properly due to an invalid primary image, the PD copies a fail-safe (“golden”) image, e.g., from an off-chip non-volatile memory device, into its volatile memory for use in booting up the PD. Depending on the particular implementation, the functionality of the golden image may be the same as or different from that of the primary image.
In the absence of dual-boot capability, a PD having an invalid primary image cannot recover from a boot-up failure, and external intervention is required to detect and correct the situation.